package com.mes.biz.domain;

import javax.validation.Valid;
import java.math.BigDecimal;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.validation.constraints.NotBlank;

import com.mes.common.annotation.Excel;
import com.mes.common.core.domain.BaseEntity;
import com.mes.common.utils.log.annotation.FieldRemark;
import com.mes.common.utils.log.annotation.LogField;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

/**
 * 库存期初详情对象 biz_inventory_opening_details
 * @author wy
 * @email wy
 * @date 2023-06-08
 */
@Data
public class BizInventoryOpeningDetails extends BaseEntity<BizInventoryOpeningDetails>
{
    private static final long serialVersionUID = 1L;

    /** 期初编号 */
    @Excel(name = "期初编号")
    @NotBlank(message = "期初编号不允许为空")
    @LogField
    @FieldRemark(name = "期初编号",field = "orderNo")
    private String orderNo;

    /** 仓位 */
    @Excel(name = "仓位")
    @LogField
    @FieldRemark(name = "仓位",field = "spaceId")
    private String spaceId;

    /** 产品id */
    @Excel(name = "产品id")
    @NotBlank(message = "产品id不允许为空")
    @LogField
    @FieldRemark(name = "产品id",field = "productCode")
    private String productCode;

    /** 数量 */
    @Excel(name = "数量")
    @LogField
    @FieldRemark(name = "数量",field = "productNumber")
    private BigDecimal productNumber;

    /** 单价 */
    @Excel(name = "单价")
    @LogField
    @FieldRemark(name = "单价",field = "unitPrice")
    private BigDecimal unitPrice;

    /** 总金额 */
    @Excel(name = "总金额")
    @LogField
    @FieldRemark(name = "总金额",field = "totalAmount")
    private BigDecimal totalAmount;

    /** 单位 */
    @Excel(name = "单位")
    @LogField
    @FieldRemark(name = "单位",field = "unit")
    private String unit;

    /** 租户id */
    @NotBlank(message = "租户id不允许为空")
    @LogField
    @FieldRemark(name = "租户id",field = "tenantId")
    private String tenantId;

    private String brand;
    private String spec;
    private String color;
    private String model;
    private List<Map<String,Object>> unitList;
    private BigDecimal purchasesPrice;
    private BigDecimal purchasesPriceA;
    private BigDecimal purchasesPriceB;
    private String assistUnit;
    private String assistUnitA;
    private String assistUnitB;

}
